Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Client–server model</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Client%E2%80%93server_model"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Client–server_model rootpage-Client–server_model skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Client–server model</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>The <b>client–server model</b> is a <a href="Distributed_application" class="mw-redirect" title="Distributed application">distributed application</a> structure that partitions tasks or workloads between the providers of a resource or service, called <a href="Server_(computing)" title="Server (computing)">servers</a>, and service requesters, called <a href="Client_(computing)" title="Client (computing)">clients</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Often clients and servers communicate over a <a href="Computer_networking_device" class="mw-redirect" title="Computer networking device">computer network</a> on separate hardware, but both client and server may be on the same device. A server <a href="Host_(network)" title="Host (network)">host</a> runs one or more server programs, which share their resources with clients. A client usually does not share its computing resources, but it requests content or service from a server and may share its own content as part of the request. Clients, therefore, initiate communication sessions with servers, which await incoming requests.
Examples of computer applications that use the client–server model are <a href="Email" title="Email">email</a>, network printing, and the <a href="World_Wide_Web" title="World Wide Web">World Wide Web</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Client_and_server_role">Client and server role</h2></div>
<p>The server component provides a function or service to one or many clients, which initiate requests for such services.
Servers are classified by the services they provide. For example, a <a href="Web_server" title="Web server">web server</a> serves <a href="Web_page" title="Web page">web pages</a> and a <a href="File_server" title="File server">file server</a> serves <a href="Computer_file" title="Computer file">computer files</a>. A <a href="Shared_resource" title="Shared resource">shared resource</a> may be any of the server computer's software and electronic components, from <a href="Computer_program" title="Computer program">programs</a> and <a href="Data_(computing)" class="mw-redirect" title="Data (computing)">data</a> to <a href="Microprocessor" title="Microprocessor">processors</a> and <a href="Data_storage_device" class="mw-redirect" title="Data storage device">storage devices</a>. The sharing of resources of a server constitutes a <i>service</i>.
</p><p>Whether a computer is a client, a server, or both, is determined by the nature of the application that requires the service functions. For example, a single computer can run a web server and file server software at the same time to serve different data to clients making different kinds of requests. The client software can also communicate with server software within the same computer.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Communication between servers, such as to synchronize data, is sometimes called <i><a href="Inter-server" title="Inter-server">inter-server</a></i> or <i>server-to-server</i> communication.
</p>
<div class="mw-heading mw-heading2"><h2 id="Client_and_server_communication">Client and server communication</h2></div>
<p>Generally, a service is an <a href="Abstraction_(computer_science)" title="Abstraction (computer science)">abstraction</a> of computer resources and a client does not have to be <a href="Concern_(computer_science)" title="Concern (computer science)">concerned</a> with how the server performs while fulfilling the request and delivering the response. The client only has to understand the response based on the relevant <a href="Application_protocol" class="mw-redirect" title="Application protocol">application protocol</a>, i.e. the content and the formatting of the data for the requested service.
</p><p>Clients and servers exchange messages in a <a href="Request%E2%80%93response" title="Request–response">request–response</a> <a href="Messaging_pattern" title="Messaging pattern">messaging pattern</a>. The client sends a request, and the server returns a response. This exchange of messages is an example of <a href="Inter-process_communication" title="Inter-process communication">inter-process communication</a>. To communicate, the computers must have a common language, and they must follow rules so that both the client and the server know what to expect. The language and rules of communication are defined in a <a href="Communications_protocol" class="mw-redirect" title="Communications protocol">communications protocol</a>. All protocols operate in the <a href="Application_layer" title="Application layer">application layer</a>. The application layer protocol defines the basic patterns of the dialogue. To formalize the data exchange even further, the server may implement an <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">application programming interface</a> (API).<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> The API is an <a href="Abstraction_layer" title="Abstraction layer">abstraction layer</a> for accessing a service. By restricting communication to a specific <a href="Content_format" title="Content format">content format</a>, it facilitates <a href="Parsing" title="Parsing">parsing</a>. By abstracting access, it facilitates cross-platform data exchange.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>A server may receive requests from many distinct clients in a short period. A computer can only perform a limited number of <a href="Task_(computing)" title="Task (computing)">tasks</a> at any moment, and relies on a <a href="Scheduling_(computing)" title="Scheduling (computing)">scheduling</a> system to prioritize incoming requests from clients to accommodate them. To prevent abuse and maximize <a href="Uptime" title="Uptime">availability</a>, the server software may limit the availability to clients. <a href="Denial_of_service_attack" class="mw-redirect" title="Denial of service attack">Denial of service attacks</a> are designed to exploit a server's obligation to process requests by overloading it with excessive request rates.
Encryption should be applied if sensitive information is to be communicated between the client and the server.
</p>
<div class="mw-heading mw-heading2"><h2 id="Example">Example</h2></div>
<p>When a <a href="Bank" title="Bank">bank</a> customer accesses <a href="Online_banking" title="Online banking">online banking</a> services with a <a href="Web_browser" title="Web browser">web browser</a> (the client), the client initiates a request to the bank's web server. The customer's <a href="Login" title="Login">login</a> <a href="Credential" title="Credential">credentials</a> are compared against a <a href="Database" title="Database">database</a>, and the webserver accesses that <a href="Database_server" title="Database server">database server</a> as a client. An <a href="Application_server" title="Application server">application server</a> interprets the returned data by applying the bank's <a href="Business_logic" title="Business logic">business logic</a> and provides the <a href="Input/output" title="Input/output">output</a> to the webserver. Finally, the webserver returns the result to the client web browser for display.
</p><p>In each step of this sequence of client–server message exchanges, a computer processes a request and returns data. This is the request-response messaging pattern. When all the requests are met, the sequence is complete.
</p><p>This example illustrates a <a href="Design_pattern" title="Design pattern">design pattern</a> applicable to the client–server model: <a href="Separation_of_concerns" title="Separation of concerns">separation of concerns</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Server-side">Server-side</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">See also: <a href="Backend_(computing)" class="mw-redirect" title="Backend (computing)">Backend (computing)</a>, <a href="Server-side_scripting" title="Server-side scripting">Server-side scripting</a>, and <a href="Server_Side_Includes" title="Server Side Includes">Server Side Includes (SSI)</a></div>

<p>Server-side refers to programs and operations that run on the <a href="Server_(computing)" title="Server (computing)">server</a>. This is in contrast to client-side programs and operations which run on the <a href="Client_(computing)" title="Client (computing)">client</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="General_concepts">General concepts</h3></div>
<p>"Server-side software" refers to a <a href="Computer_application" class="mw-redirect" title="Computer application">computer application</a>, such as a <a href="Web_server" title="Web server">web server</a>, that runs on remote <a href="Server_(computing)#Hardware" title="Server (computing)">server hardware</a>, reachable from a <a href="User_(computing)" title="User (computing)">user</a>'s local <a href="Computer" title="Computer">computer</a>, <a href="Smartphone" title="Smartphone">smartphone</a>, or other device.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Operations may be performed server-side because they require access to information or functionality that is not available on the <a href="Client_(computing)" title="Client (computing)">client</a>, or because performing such operations on the <a href="Client-side" class="mw-redirect" title="Client-side">client side</a> would be slow, unreliable, or <a href="Computer_security" title="Computer security">insecure</a>.
</p><p>Client and server programs may be commonly available ones such as free or commercial <a href="Web_server" title="Web server">web servers</a> and <a href="Web_browser" title="Web browser">web browsers</a>, communicating with each other using standardized <a href="Protocol_(computing)" class="mw-redirect" title="Protocol (computing)">protocols</a>. Or, <a href="Programmer" title="Programmer">programmers</a> may write their own server, client, and <a href="Communications_protocol" class="mw-redirect" title="Communications protocol">communications protocol</a> which can only be used with one another.
</p><p>Server-side operations include both those that are carried out in response to client requests, and non-client-oriented operations such as maintenance tasks.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Computer_security">Computer security</h3></div>
<p>In a <a href="Computer_security" title="Computer security">computer security</a> context, server-side vulnerabilities or attacks refer to those that occur on a server computer system, rather than on the client side, or <a href="Man-in-the-middle_attack" title="Man-in-the-middle attack">in between the two</a>. For example, an attacker might exploit an <a href="SQL_injection" title="SQL injection">SQL injection</a> vulnerability in a <a href="Web_application" title="Web application">web application</a> in order to maliciously change or gain unauthorized access to data in the server's <a href="Database" title="Database">database</a>. Alternatively, an attacker might break into a server system using vulnerabilities in the underlying <a href="Operating_system" title="Operating system">operating system</a> and then be able to access database and other files in the same manner as authorized administrators of the server.<sup id="cite_ref-oreilly_8-0" class="reference"><a href="#cite_note-oreilly-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-n3tweb_9-0" class="reference"><a href="#cite_note-n3tweb-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-alpinesecurity_10-0" class="reference"><a href="#cite_note-alpinesecurity-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Examples">Examples</h3></div>
<p>In the case of <a href="Distributed_computing" title="Distributed computing">distributed computing</a> projects such as <a href="SETI%40home" title="SETI@home">SETI@home</a> and the <a href="Great_Internet_Mersenne_Prime_Search" title="Great Internet Mersenne Prime Search">Great Internet Mersenne Prime Search</a>, while the bulk of the operations occur on the client side, the servers are responsible for coordinating the clients, sending them data to analyze, receiving and storing results, providing reporting functionality to project administrators, etc. In the case of an Internet-dependent user application like <a href="Google_Earth" title="Google Earth">Google Earth</a>, while querying and display of map data takes place on the client side, the server is responsible for permanent storage of map data, resolving user queries into map data to be returned to the client, etc.
</p><p>Web applications and <a href="Web_service" title="Web service">services</a> can be implemented in almost any language, as long as they can return data to standards-based web browsers (possibly via intermediary programs) in formats which they can use.
</p>
<div class="mw-heading mw-heading2"><h2 id="Client_side">Client side</h2></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="Client-side_prediction" title="Client-side prediction">Client-side prediction</a>, <a href="Front-end_(computing)" class="mw-redirect" title="Front-end (computing)">Front-end (computing)</a>, and <a href="Pagination#_In_web_browsers" title="Pagination">Pagination §&nbsp;In web browsers</a></div>
<p>Client-side refers to operations that are performed by the <a href="Client_(computing)" title="Client (computing)">client</a> in a <a href="Computer_network" title="Computer network">computer network</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="General_concepts_2">General concepts</h3></div>
<p>Typically, a client is a <a href="Computer_application" class="mw-redirect" title="Computer application">computer application</a>, such as a <a href="Web_browser" title="Web browser">web browser</a>, that runs on a <a href="User_(computing)" title="User (computing)">user</a>'s local <a href="Computer" title="Computer">computer</a>, <a href="Smartphone" title="Smartphone">smartphone</a>, or other device, and connects to a <a href="Server_(computing)" title="Server (computing)">server</a> as necessary. Operations may be performed client-side because they require access to information or functionality that is available on the client but not on the server, because the user needs to observe the operations or provide input, or because the server lacks the processing power to perform the operations in a timely manner for all of the clients it serves. Additionally, if operations can be performed by the client, without sending data over the network, they may take less time, use less <a href="Bandwidth_(computing)" title="Bandwidth (computing)">bandwidth</a>, and incur a lesser <a href="Computer_security" title="Computer security">security</a> risk.
</p><p>When the server serves data in a commonly used manner, for example according to standard <a href="Protocol_(computing)" class="mw-redirect" title="Protocol (computing)">protocols</a> such as <a href="HyperText_Transfer_Protocol" class="mw-redirect" title="HyperText Transfer Protocol">HTTP</a> or <a href="File_Transfer_Protocol" title="File Transfer Protocol">FTP</a>, users may have their choice of a number of client programs (e.g. most modern web browsers can request and receive data using both HTTP and FTP). In the case of more specialized applications, <a href="Programmer" title="Programmer">programmers</a> may write their own server, client, and <a href="Communications_protocol" class="mw-redirect" title="Communications protocol">communications protocol</a> which can only be used with one another.
</p><p>Programs that run on a user's local computer without ever sending or receiving data over a network are not considered clients, and so the operations of such programs would not be termed client-side operations.
</p>
<div class="mw-heading mw-heading3"><h3 id="Computer_security_2">Computer security</h3></div>
<p>In a <a href="Computer_security" title="Computer security">computer security</a> context, client-side vulnerabilities or attacks refer to those that occur on the client / user's computer system, rather than on the <a href="Server-side" class="mw-redirect" title="Server-side">server side</a>, or <a href="Man-in-the-middle_attack" title="Man-in-the-middle attack">in between the two</a>. As an example, if a server contained an <a href="Encryption" title="Encryption">encrypted</a> file or message which could only be decrypted using a <a href="Key_(cryptography)" title="Key (cryptography)">key</a> housed on the user's computer system, a client-side attack would normally be an attacker's only opportunity to gain access to the decrypted contents. For instance, the attacker might cause <a href="Malware" title="Malware">malware</a> to be installed on the client system, allowing the attacker to view the user's screen, record the user's keystrokes, and steal copies of the user's encryption keys, etc. Alternatively, an attacker might employ <a href="Cross-site_scripting" title="Cross-site scripting">cross-site scripting</a> vulnerabilities to execute malicious code on the client's system without needing to install any permanently resident malware.<sup id="cite_ref-oreilly_8-1" class="reference"><a href="#cite_note-oreilly-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-n3tweb_9-1" class="reference"><a href="#cite_note-n3tweb-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-alpinesecurity_10-1" class="reference"><a href="#cite_note-alpinesecurity-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Examples_2">Examples</h3></div>
<p><a href="Distributed_computing" title="Distributed computing">Distributed computing</a> projects such as <a href="SETI%40home" title="SETI@home">SETI@home</a> and the Great Internet Mersenne Prime Search, as well as Internet-dependent applications like <a href="Google_Earth" title="Google Earth">Google Earth</a>, rely primarily on client-side operations. They initiate a connection with the server (either in response to a user query, as with Google Earth, or in an automated fashion, as with SETI@home), and request some data. The server selects a data set (a <a href="Server-side" class="mw-redirect" title="Server-side">server-side</a> operation) and sends it back to the client. The client then analyzes the data (a client-side operation), and, when the analysis is complete, displays it to the user (as with Google Earth) and/or transmits the results of calculations back to the server (as with SETI@home).
</p>
<div class="mw-heading mw-heading2"><h2 id="Early_history">Early history</h2></div>
<p>An early form of client–server architecture is <a href="Remote_job_entry" title="Remote job entry">remote job entry</a>, dating at least to <a href="OS/360" class="mw-redirect" title="OS/360">OS/360</a> (announced 1964), where the request was to run a <a href="Job_(computing)" title="Job (computing)">job</a>, and the response was the output.
</p><p>While formulating the client–server model in the 1960s and 1970s, <a href="Computer_scientist" title="Computer scientist">computer scientists</a> building <a href="ARPANET" title="ARPANET">ARPANET</a> (at the <a href="SRI_International" title="SRI International">Stanford Research Institute</a>) used the terms <i>server-host</i> (or <i>serving host</i>) and <i>user-host</i> (or <i>using-host</i>), and these appear in the early documents RFC 5<sup id="cite_ref-rulifson_11-0" class="reference"><a href="#cite_note-rulifson-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> and RFC 4.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> This usage was continued at <a href="PARC_(company)" title="PARC (company)">Xerox PARC</a> in the mid-1970s.
</p><p>One context in which researchers used these terms was in the design of a <a href="Computer_network_programming" title="Computer network programming">computer network programming</a> language called Decode-Encode Language (DEL).<sup id="cite_ref-rulifson_11-1" class="reference"><a href="#cite_note-rulifson-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> The purpose of this language was to accept commands from one computer (the user-host), which would return status reports to the user as it encoded the commands in network packets. Another DEL-capable computer, the server-host, received the packets, decoded them, and returned formatted data to the user-host. A DEL program on the user-host received the results to present to the user. This is a client–server transaction. Development of DEL was just beginning in 1969, the year that the <a href="United_States_Department_of_Defense" title="United States Department of Defense">United States Department of Defense</a> established ARPANET (predecessor of <a href="Internet" title="Internet">Internet</a>).
</p>
<div class="mw-heading mw-heading3"><h3 id="Client-host_and_server-host">Client-host and server-host</h3></div>
<p><i>Client-host</i> and <i>server-host</i> have subtly different meanings than <i>client</i> and <i>server</i>. A host is any computer connected to a network. Whereas the words <i>server</i> and <i>client</i> may refer either to a computer or to a computer program, <i>server-host</i> and <i>client-host</i> always refer to computers. The host is a versatile, multifunction computer; <i>clients</i> and <i>servers</i> are just programs that run on a host. In the client–server model, a server is more likely to be devoted to the task of serving.
</p><p>An early use of the word <i>client</i> occurs in "Separating Data from Function in a Distributed File System", a 1978 paper by Xerox PARC computer scientists Howard Sturgis, James Mitchell, and Jay Israel. The authors are careful to define the term for readers, and explain that they use it to distinguish between the user and the user's network node (the client).<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> By 1992, the word <i>server</i> had entered into general parlance.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Centralized_computing">Centralized computing</h2></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="History_of_personal_computers" title="History of personal computers">History of personal computers</a>, <a href="Decentralized_computing" title="Decentralized computing">Decentralized computing</a>, and <a href="Computer_cluster" title="Computer cluster">Computer cluster</a></div>
<p>The client-server model does not dictate that server-hosts must have more resources than client-hosts. Rather, it enables any general-purpose computer to extend its capabilities by using the shared resources of other hosts. <a href="Centralized_computing" title="Centralized computing">Centralized computing</a>, however, specifically allocates a large number of resources to a small number of computers. The more computation is offloaded from client-hosts to the central computers, the simpler the client-hosts can be.<sup id="cite_ref-Columbia_16-0" class="reference"><a href="#cite_note-Columbia-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> It relies heavily on network resources (servers and infrastructure) for computation and storage. A <a href="Diskless_node" title="Diskless node">diskless node</a> loads even its <a href="Operating_system" title="Operating system">operating system</a> from the network, and a <a href="Computer_terminal" title="Computer terminal">computer terminal</a> has no operating system at all; it is only an input/output interface to the server. In contrast, a <a href="Rich_client" title="Rich client">rich client</a>, such as a <a href="Personal_computer" title="Personal computer">personal computer</a>, has many resources and does not rely on a server for essential functions.
</p><p>As <a href="Microcomputer" title="Microcomputer">microcomputers</a> decreased in price and increased in power from the 1980s to the late 1990s, many organizations transitioned computation from centralized servers, such as <a href="Mainframe_computer" title="Mainframe computer">mainframes</a> and <a href="Minicomputer" title="Minicomputer">minicomputers</a>, to rich clients.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> This afforded greater, more individualized dominion over computer resources, but complicated <a href="Information_technology_management" title="Information technology management">information technology management</a>.<sup id="cite_ref-Columbia_16-1" class="reference"><a href="#cite_note-Columbia-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-tolia_18-0" class="reference"><a href="#cite_note-tolia-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> During the 2000s, <a href="Web_application" title="Web application">web applications</a> matured enough to rival <a href="Application_software" title="Application software">application software</a> developed for a specific <a href="Microarchitecture" title="Microarchitecture">microarchitecture</a>. This maturation, more affordable <a href="Mass_storage" title="Mass storage">mass storage</a>, and the advent of <a href="Service-oriented_architecture" title="Service-oriented architecture">service-oriented architecture</a> were among the factors that gave rise to the <a href="Cloud_computing" title="Cloud computing">cloud computing</a> trend of the 2010s.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Comparison_with_peer-to-peer_architecture">Comparison with peer-to-peer architecture</h2></div>
<p>In addition to the client-server model, <a href="Distributed_computing" title="Distributed computing">distributed computing</a> applications often use the <a href="Peer-to-peer" title="Peer-to-peer">peer-to-peer</a> (P2P) application architecture.
</p><p>In the client-server model, the server is often designed to operate as a centralized system that serves many clients. The computing power, memory and storage requirements of a server must be scaled appropriately to the expected workload. <a href="Load_balancing_(computing)" title="Load balancing (computing)">Load-balancing</a> and <a href="Failover" title="Failover">failover</a> systems are often employed to scale the server beyond a single physical machine.<sup id="cite_ref-Cardellini_Colajanni_Yu_1999_pp._28–39_21-0" class="reference"><a href="#cite_note-Cardellini_Colajanni_Yu_1999_pp._28–39-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-NGINX_2014_22-0" class="reference"><a href="#cite_note-NGINX_2014-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
</p><p>Load balancing is defined as the methodical and efficient distribution of network or application traffic across multiple servers in a server farm. Each load balancer sits between client devices and backend servers, receiving and then distributing incoming requests to any available server capable of fulfilling them.
</p><p>In a <a href="Peer-to-peer" title="Peer-to-peer">peer-to-peer</a> network, two or more computers (<i>peers</i>) pool their resources and communicate in a <a href="Decentralized_system" class="mw-redirect" title="Decentralized system">decentralized system</a>. Peers are coequal, or equipotent <a href="Node_(networking)" title="Node (networking)">nodes</a> in a non-hierarchical network. Unlike clients in a client-server or <a href="Client-queue-client" class="mw-redirect" title="Client-queue-client">client-queue-client</a> network, peers communicate with each other directly. <sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> In peer-to-peer networking, an <a href="Algorithm" title="Algorithm">algorithm</a> in the peer-to-peer communications protocol balances <a href="Load_(computing)" title="Load (computing)">load</a>, and even peers with modest resources can help to share the load.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> If a node becomes unavailable, its shared resources remain available as long as other peers offer it. Ideally, a peer does not need to achieve <a href="High_availability" title="High availability">high availability</a> because other, <a href="Redundancy_(engineering)" title="Redundancy (engineering)">redundant</a> peers make up for any resource <a href="Downtime" title="Downtime">downtime</a>; as the availability and load capacity of peers change, the protocol reroutes requests.
</p><p>Both client-server and <a href="Master/slave_(technology)" class="mw-redirect" title="Master/slave (technology)">master-slave</a> are regarded as sub-categories of distributed peer-to-peer systems.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1184024115">
/* start https://en.wikipedia.org/ */


.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}


/* end https://en.wikipedia.org/ */
</style><div class="div-col" style="column-width: 30em;">
<ul><li><a href="Endpoint_security" title="Endpoint security">Endpoint security</a></li>
<li><a href="Front_and_back_ends" class="mw-redirect" title="Front and back ends">Front and back ends</a></li>
<li><a href="Modular_programming" title="Modular programming">Modular programming</a></li>
<li><a href="Observer_pattern" title="Observer pattern">Observer pattern</a></li>
<li><a href="Publish%E2%80%93subscribe_pattern" title="Publish–subscribe pattern">Publish–subscribe pattern</a></li>
<li><a href="Pull_technology" title="Pull technology">Pull technology</a></li>
<li><a href="Push_technology" title="Push technology">Push technology</a></li>
<li><a href="Remote_procedure_call" title="Remote procedure call">Remote procedure call</a></li>
<li><a href="Server_change_number" title="Server change number">Server change number</a></li>
<li><a href="Systems_Network_Architecture" title="Systems Network Architecture">Systems Network Architecture</a>, a proprietary network architecture by <a href="IBM" title="IBM">IBM</a></li>
<li><a href="Thin_client" title="Thin client">Thin client</a></li>
<li><a href="Configurable_Network_Computing" title="Configurable Network Computing">Configurable Network Computing</a>, a proprietary client-server architecture by <a href="JD_Edwards" title="JD Edwards">JD Edwards</a></li></ul></div>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110406121920/http://java.sun.com/developer/Books/jdbc/ch07.pdf">"Distributed Application Architecture"</a> <span class="cs1-format">(PDF)</span>. Sun Microsystem. Archived from <a rel="nofollow" class="external text" href="http://java.sun.com/developer/Books/jdbc/ch07.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 6 April 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">2009-06-16</span></span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text">The <a href="X_Window_System" title="X Window System">X Window System</a> is one example.</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFBenatallahCasatiToumani2004" class="citation journal cs1">Benatallah, B.; Casati, F.; Toumani, F. (2004). "Web service conversation modeling: A cornerstone for e-business automation". <i>IEEE Internet Computing</i>. <b>8</b>: <span class="nowrap">46–</span>54. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FMIC.2004.1260703">10.1109/MIC.2004.1260703</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:8121624">8121624</a>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFDustdarSchreiner2005" class="citation journal cs1">Dustdar, S.; Schreiner, W. (2005). <a rel="nofollow" class="external text" href="http://www.infosys.tuwien.ac.at/Staff/sd/papers/A%20survey%20on%20web%20services%20composition_Dustdar_Schreiner_inPress.pdf">"A survey on web services composition"</a> <span class="cs1-format">(PDF)</span>. <i>International Journal of Web and Grid Services</i>. <b>1</b>: 1. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.139.4827">10.1.1.139.4827</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1504%2FIJWGS.2005.007545">10.1504/IJWGS.2005.007545</a>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cloudflare.com/en-gb/learning/serverless/glossary/client-side-vs-server-side/">"What do client side and server side mean? Client side vs. server side"</a>. Cloudflare<span class="reference-accessdate">. Retrieved <span class="nowrap">17 April</span> 2025</span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/Learn/Server-side/First_steps/Introduction">"Introduction to the server side - Learn web development | MDN"</a>. <i>developer.mozilla.org</i>. 2023-11-05<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-13</span></span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/Learn/Server-side">"Server-side website programming - Learn web development | MDN"</a>. <i>developer.mozilla.org</i>. 2023-06-30<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-13</span></span>.</cite></span>
</li>
<li id="cite_note-oreilly-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-oreilly_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-oreilly_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFLehtinenRussellGangemi2006" class="citation book cs1">Lehtinen, Rick; Russell, Deborah; Gangemi, G. T. (2006). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=DyrLV0kZEd8C&amp;q=client-side+OR+server-side&amp;pg=PT17"><i>Computer Security Basics</i></a> (2nd&nbsp;ed.). <a href="O'Reilly_Media" title="O'Reilly Media">O'Reilly Media</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9780596006693</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-07-07</span></span>.</cite></span>
</li>
<li id="cite_note-n3tweb-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-n3tweb_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-n3tweb_9-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFJS2015" class="citation web cs1">JS (2015-10-15). <a rel="nofollow" class="external text" href="https://n3tweb.wordpress.com/2015/10/15/week-4-is-there-a-difference-between-client-side-and-server-side/">"Week 4: Is There a Difference between Client Side and Server Side?"</a>. <i>n3tweb.wordpress.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-07-07</span></span>.</cite></span>
</li>
<li id="cite_note-alpinesecurity-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-alpinesecurity_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-alpinesecurity_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFEspinosa2016" class="citation web cs1">Espinosa, Christian (2016-04-23). <a rel="nofollow" class="external text" href="https://www.alpinesecurity.com/s/Alpine-Security-Decoding-the-Hack-Presentation-22-April-16.pdf">"Decoding the Hack"</a> <span class="cs1-format">(PDF)</span>. <i>alpinesecurity.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-07-07</span></span>.</cite></span>
</li>
<li id="cite_note-rulifson-11"><span class="mw-cite-backlink">^ <a href="#cite_ref-rulifson_11-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-rulifson_11-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFRulifson1969" class="citation cs1"><a href="Jeff_Rulifson" title="Jeff Rulifson">Rulifson, Jeff</a> (June 1969). <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc5"><i>DEL</i></a>. <a href="Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.17487%2FRFC0005">10.17487/RFC0005</a></span>. <a href="Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc5">5</a><span class="reference-accessdate">. Retrieved <span class="nowrap">30 November</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite id="CITEREFShapiro1969" class="citation cs1">Shapiro, Elmer B. (March 1969). <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc4"><i>Network Timetable</i></a>. <a href="Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.17487%2FRFC0004">10.17487/RFC0004</a></span>. <a href="Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc4">4</a><span class="reference-accessdate">. Retrieved <span class="nowrap">30 November</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFSturgisMitchellIsrael1978" class="citation web cs1">Sturgis, Howard E.; Mitchell, James George; Israel, Jay E. (1978). <a rel="nofollow" class="external text" href="http://ip.com/IPCOM/000128883">"Separating Data from Function in a Distributed File System"</a>. <a href="PARC_(company)" title="PARC (company)">Xerox PARC</a>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite id="CITEREFHarper" class="citation web cs1">Harper, Douglas. <a rel="nofollow" class="external text" href="https://www.etymonline.com/word/server">"server"</a>. <i><a href="Online_Etymology_Dictionary" class="mw-redirect" title="Online Etymology Dictionary">Online Etymology Dictionary</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">30 November</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20131202233729/https://getinfo.de/app/Separating-data-from-function-in-a-distributed/id/TIBKAT%3A509976956">"Separating data from function in a distributed file system"</a>. <i><a href="GetInfo" class="mw-redirect" title="GetInfo">GetInfo</a></i>. <a href="German_National_Library_of_Science_and_Technology" title="German National Library of Science and Technology">German National Library of Science and Technology</a>. Archived from <a rel="nofollow" class="external text" href="https://getinfo.de/app/Separating-data-from-function-in-a-distributed/id/TIBKAT%3A509976956">the original</a> on 2 December 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">29 November</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-Columbia-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-Columbia_16-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Columbia_16-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFNiehYangNovik2000" class="citation journal cs1">Nieh, Jason; Yang, S. Jae; Novik, Naomi (2000). <a rel="nofollow" class="external text" href="https://academiccommons.columbia.edu/doi/10.7916/D8Z329VF">"A Comparison of Thin-Client Computing Architectures"</a>. <i>Academic Commons</i>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.7916%2FD8Z329VF">10.7916/D8Z329VF</a><span class="reference-accessdate">. Retrieved <span class="nowrap">28 November</span> 2018</span>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite id="CITEREFd'AmoreOberst1983" class="citation book cs1">d'Amore, M. J.; Oberst, D. J. (1983). "Microcomputers and mainframes". <i>Proceedings of the 11th annual ACM SIGUCCS conference on User services - SIGUCCS '83</i>. p.&nbsp;7. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F800041.801417">10.1145/800041.801417</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0897911160</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:14248076">14248076</a>.</cite></span>
</li>
<li id="cite_note-tolia-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-tolia_18-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFToliaAndersenSatyanarayanan2006" class="citation journal cs1">Tolia, Niraj; Andersen, David G.; Satyanarayanan, M. (March 2006). <a rel="nofollow" class="external text" href="https://www.cs.cmu.edu/~dga/papers/tolia06-ieee.pdf">"Quantifying Interactive User Experience on Thin Clients"</a> <span class="cs1-format">(PDF)</span>. <i><a href="Computer_(magazine)" title="Computer (magazine)">Computer</a></i>. <b>39</b> (3). <a href="IEEE_Computer_Society" title="IEEE Computer Society">IEEE Computer Society</a>: <span class="nowrap">46–</span>52. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2Fmc.2006.101">10.1109/mc.2006.101</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:8399655">8399655</a>.</cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite id="CITEREFOtey2011" class="citation web cs1">Otey, Michael (22 March 2011). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20131203011958/http://sqlmag.com/cloud/cloud-really-just-return-mainframe-computing">"Is the Cloud Really Just the Return of Mainframe Computing?"</a>. <i>SQL Server Pro</i>. <a href="Penton_Media" class="mw-redirect" title="Penton Media">Penton Media</a>. Archived from <a rel="nofollow" class="external text" href="http://sqlmag.com/cloud/cloud-really-just-return-mainframe-computing">the original</a> on 3 December 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">1 December</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite id="CITEREFBarrosDumas2006" class="citation journal cs1">Barros, A. P.; Dumas, M. (2006). "The Rise of Web Service Ecosystems". <i>IT Professional</i>. <b>8</b> (5): 31. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FMITP.2006.123">10.1109/MITP.2006.123</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:206469224">206469224</a>.</cite></span>
</li>
<li id="cite_note-Cardellini_Colajanni_Yu_1999_pp._28–39-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-Cardellini_Colajanni_Yu_1999_pp._28–39_21-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFCardelliniColajanniYu1999" class="citation journal cs1">Cardellini, V.; Colajanni, M.; Yu, P.S. (1999). "Dynamic load balancing on Web-server systems". <i>IEEE Internet Computing</i>. <b>3</b> (3). Institute of Electrical and Electronics Engineers (IEEE): <span class="nowrap">28–</span>39. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2F4236.769420">10.1109/4236.769420</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1089-7801">1089-7801</a>.</cite></span>
</li>
<li id="cite_note-NGINX_2014-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-NGINX_2014_22-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.nginx.com/resources/glossary/load-balancing/">"What Is Load Balancing? How Load Balancers Work"</a>. <i>NGINX</i>. June 1, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">January 21,</span> 2020</span>.</cite></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite id="CITEREFAlharbiAljaedi2004" class="citation journal cs1">Alharbi, A.; Aljaedi, A. (2004). "Peer-to-Peer Network Security Issues and Analysis: Review". <i>IJCSNS International Journal of Computer Science and Network Security</i>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-45172-3_6">10.1007/978-3-540-45172-3_6</a>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite id="CITEREFRaoLakshminarayananSuranaManning_Karp2020" class="citation journal cs1">Rao, A.; Lakshminarayanan, K.; Surana, S.; Manning Karp, R. (2020). "Load Balancing in Structured P2P Systems". <i>IJCSNS International Journal of Computer Science and Network Security</i>. <b>20</b>: <span class="nowrap">74–</span>88.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text">
<cite id="CITEREFVarma2009" class="citation book cs1">Varma, Vasudeva (2009). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=jOMYtrJ6r_0C">"1: Software Architecture Primer"</a>. <i>Software Architecture: A Case Based Approach</i>. Delhi: Pearson Education India. p.&nbsp;29. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9788131707494</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-07-04</span></span>. <q>Distributed Peer-to-Peer Systems [...] This is a generic style of which popular styles are the client-server and master-slave styles.</q></cite></span>
</li>
</ol></div></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Inter-process_communication278" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Inter-process_communication278" style="font-size:114%;margin:0 4em"><a href="Inter-process_communication" title="Inter-process communication">Inter-process communication</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div><a href="Data" title="Data">Data</a> exchange among <a href="Thread_(computing)" title="Thread (computing)">threads</a> in <a href="Computer_program" title="Computer program">computer programs</a></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Methods</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_file" title="Computer file">File</a></li>
<li><a href="Mmap" title="Mmap">Memory-mapped file</a></li>
<li><a href="Message_passing" title="Message passing">Message passing</a></li>
<li><a href="Message_queue" title="Message queue">Message queue and mailbox</a></li>
<li><a href="Named_pipe" title="Named pipe">Named pipe</a></li>
<li><a href="Anonymous_pipe" title="Anonymous pipe">Anonymous pipe</a></li>
<li><a href="Pipeline_(Unix)" title="Pipeline (Unix)">Pipe</a></li>
<li><a href="Semaphore_(programming)" title="Semaphore (programming)">Semaphore</a></li>
<li><a href="Shared_memory" title="Shared memory">Shared memory</a></li>
<li><a href="Signal_(IPC)" title="Signal (IPC)">Signal</a></li>
<li>Sockets
<ul><li><a href="Network_socket" title="Network socket">Network</a></li>
<li><a href="Unix_domain_socket" title="Unix domain socket">Unix</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Communication_protocol" title="Communication protocol">Protocols</a><br>and <a href="Technical_standard" title="Technical standard">standards</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Apple_event" title="Apple event">Apple events</a></li>
<li><a href="Component_Object_Model#COM.2B" title="Component Object Model">COM+</a></li>
<li><a href="Common_Object_Request_Broker_Architecture" title="Common Object Request Broker Architecture">CORBA</a></li>
<li><a href="D-Bus" title="D-Bus">D-Bus</a></li>
<li><a href="Data_Distribution_Service" title="Data Distribution Service">DDS</a></li>
<li><a href="Distributed_Computing_Environment" title="Distributed Computing Environment">DCE</a></li>
<li><a href="Internet_Communications_Engine" title="Internet Communications Engine">ICE</a></li>
<li><a href="OpenBinder" title="OpenBinder">OpenBinder</a></li>
<li><a href="Sun_RPC" title="Sun RPC">Sun RPC</a></li>
<li><a href="POSIX" title="POSIX">POSIX</a> (various methods)</li>
<li><a href="SOAP" title="SOAP">SOAP</a></li>
<li><a href="REST" title="REST">REST</a></li>
<li><a href="Apache_Thrift" title="Apache Thrift">Thrift</a></li>
<li><a href="Transparent_Inter-process_Communication" title="Transparent Inter-process Communication">TIPC</a></li>
<li><a href="XML-RPC" title="XML-RPC">XML-RPC</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Library_(computing)" title="Library (computing)">Software libraries</a><br>and <a href="Software_framework" title="Software framework">frameworks</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="D-Bus" title="D-Bus">D-Bus</a></li>
<li><a href="Libevent" title="Libevent">libevent</a></li>
<li><a href="SIMPL" title="SIMPL">SIMPL</a></li>
<li><a href="LINX_(IPC)" class="mw-redirect" title="LINX (IPC)">LINX</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1038841319">
/* start https://en.wikipedia.org/ */


.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox authority-control" aria-label="Navbox879" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Authority control databases: National </th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="architektura klient/server"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&amp;local_base=aut&amp;ccl_term=ica=ph173827&amp;CON_LNG=ENG">Czech Republic</a></span></span><ul><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="klient/server software"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&amp;local_base=aut&amp;ccl_term=ica=ph121616&amp;CON_LNG=ENG">2</a></span></span></li></ul></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-24" href="https://en.wikipedia.org/wiki/?title=Client%E2%80%93server_model&amp;oldid=1302206802">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>